using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Camera")]
	public class Camera : Behaviour
	{
		public static Camera Main => MonoClass.smethod_15<Camera>(TritonHs.UnityEngineAssemblyPath, "UnityEngine", "Camera", "get_main", Array.Empty<object>());

		public float NearClipPlane => method_11<float>("get_nearClipPlane", Array.Empty<object>());

		public Camera(IntPtr address)
			: base(address, "Camera")
		{
		}

		public Vector3 WorldToScreenPoint(Vector3 position)
		{
			return method_10<Vector3>("WorldToScreenPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}

		public Vector3 ViewportToWorldPoint(Vector3 position)
		{
			return method_10<Vector3>("ViewportToWorldPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}

		public Vector3 ViewportToScreenPoint(Vector3 position)
		{
			return method_10<Vector3>("ViewportToScreenPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}

		public Vector3 WorldToViewportPoint(Vector3 position)
		{
			return method_10<Vector3>("WorldToViewportPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}

		public Vector3 ScreenToViewportPoint(Vector3 position)
		{
			return method_10<Vector3>("ScreenToViewportPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}

		public Vector3 ScreenToWorldPoint(Vector3 position)
		{
			return method_10<Vector3>("ScreenToWorldPoint", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { position });
		}
	}
}
